package com.lbz.entity;

import lombok.*;

import java.util.Date;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString(exclude = "updateTime")
//@EqualsAndHashCode(of = "id")
public class Category {
    private Integer id;

    private Integer parentId;

    private String name;

    private Boolean status;

    private Integer sortOrder;

    private Date createTime;

    private Date updateTime;

    /**
     * 这里重写Category的equals和hashcode方法，为什么要重写equals和hashcode两个方法呢?
     * 当category的id相同，认为两个对象是重复的，equals返回true，hashcode一定相同，当
     * 两个对象的hashcode相同时，两个对象不一定相同，所以，得出结论当使用Set集合的时候，
     * 注意要重写equals和hashCode两个方法。
     */
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Category category = (Category) o;
        return !(id != null ? !id.equals(category.id) : category.id != null);
    }

    @Override
    public int hashCode() {
        return id != null ? id.hashCode() : 0;
    }

}